package model;

import java.util.ArrayList;

import model.interfaces.Artikel;

public class Clubhuis {

	private String naam;
	private double saldo;
	private ArrayList<Artikel> artikelen;
	private ArrayList<Rekening> rekeningen;

	public Clubhuis(String naam, double saldo) {
		this.naam = naam;
		this.saldo = saldo;
		artikelen = new ArrayList<Artikel>();
		rekeningen = new ArrayList<Rekening>();
	}

	public String getNaam() {
		return naam;
	}

	public void setNaam(String naam) {
		this.naam = naam;
	}

	public double getSaldo() {
		return saldo;
	}

	public void updateSaldo(double saldo) {
		this.saldo += saldo;
	}

	public Artikel koopArtikel(int artikelNr) {
		for (Artikel a : artikelen) {
			if (a.getArtikelNr() == artikelNr) {
				updateSaldo(a.getPrijs());
				return a;
			}
		}
		return null;
	}

	public void addArtikel(int artikelNr) {
		ArtikelManagerFactory amf = ArtikelManagerFactory.getInstance();
		ArtikelManager am = amf.getArtikelFactory();
		Artikel artikel = am.getArtikel(artikelNr);
		artikelen.add(artikel);
	}

	public void verwijderArtikel(int artikelNr) {
		ArtikelManagerFactory amf = ArtikelManagerFactory.getInstance();
		ArtikelManager am = amf.getArtikelFactory();
		Artikel artikel = am.getArtikel(artikelNr);
		artikelen.remove(artikel);
	}

	public ArrayList<Artikel> getArtikelen() {
		return artikelen;
	}

	public void betaalRekening(Rekening rekening) {
		if (saldo >= rekening.getBedrag()) {
			updateSaldo(rekening.getBedrag() * -1);
			rekening.setBetaald(true);
		}
		else {
			System.out.println("Rekening kan niet betaald worden, te weinig saldo!");
		}
	}

	public void addRekening(Rekening rekening) {
		rekeningen.add(rekening);
	}

	public ArrayList<Rekening> getRekeningen() {
		return rekeningen;
	}

}
